/**
 * Created by 12297 on 2019/1/27.
 */
layui.use(['form', 'layer', 'laydate', 'table', 'upload'], function(){

    var form = layui.form,
        layer = parent.layer === undefined ? layui.layer : top.layer,
        $ = layui.jquery,
        laydate = layui.laydate,
        upload = layui.upload,
        table = layui.table;

    var datalist_url = $('.datalist_url').val();
    var add_url = $('.add_url').val();
    var edit_url = $('.edit_url').val();
    var delete_url = $('.delete_url').val();


    // Table 列表
    var tableIns= table.render({
        elem: '#dataTable100',
        url : datalist_url,
        page : false,
        totalRow: true,
        toolbar: '#toolbarDemo',
        cellMinWidth : 95,
        //height : "full-100",
        id : "tableList",
        // initSort: {
        //     field: 'product_name' // 排序字段，对应 cols 设定的各字段名
        //     ,type: 'asc' // 排序方式  asc: 升序、desc: 降序、null: 默认排序
        // },
        cols : [[
            {field: 'product_name', title: '商品名称', align:"center",totalRowText: '合计'},
            {field: 'bar_code', title: '商品条码',align:'center'},
            {field: 'spec', title: '规格', align:'center', sort: true},
            {field: 'purchase_price', title: '进货价', align:'center',templet:function(d){
                return formatMoney(d.purchase_price/100,1)
            }},
            {field: 'unit', title: '单位', align:'center'},
            {field: 'pu_stock', title: '采购数量',width:180, align:'center'},
            {field: 'production_time', title: '生产日期', align:'center'},
            {field: 'shou_num', title: '收货数量', align:'center',totalRow: true},
            {field: 'toal', title: '收货金额', align:'center',totalRow: true},
        ]],
        done : function(res, curr, count) {
            merge(res);
        }
    });


    // 搜索
    $(".search_btn").on("click", function(){
        if($('.title').val() != ''){
            table.reload("tableList", {
                page: {
                    curr: 1 //重新从第 1 页开始
                },
                where: {
                    title: $('.searchBox').find('input[name=title]').val()  //搜索的关键字
                }
            });
        }else{
            layer.msg("请输入搜索的内容");
        }
    });



    form.on('select(supsprselect)', function(data){
        var supid=data.value;
        $.ajax({
            type: 'POST',
            url: '/admin/Receiving/getpurchase',
            data: {supid:supid},
            dataType:  'json',
            success: function(data){
                $("#receivselect").html("");
                $.each(data, function(key, val) {
                    var option1 = $("<option>").val(val.id).text('单据号  '+val.id);
                    $("#receivselect").append(option1);
                    form.render('select');
                });
                $("#receivselect").get(0).selectedIndex=0;
            }
        });
    });
//单元格行合并
    function merge(res) {
        var data = res.data;
        var mergeIndex = 0;//定位需要添加合并属性的行数
        var mark = 1; //这里涉及到简单的运算，mark是计算每次需要合并的格子数
        var columsName = ['product_name','bar_code','pu_stock'];//需要合并的列名称
        var columsIndex = [0,1,5];//需要合并的列索引值

        for (var k = 0; k < columsName.length; k++) { //这里循环所有要合并的列
            var trArr = $(".layui-table-body>.layui-table").find("tr");//所有行
            for (var i = 1; i < res.data.length; i++) { //这里循环表格当前的数据
                var tdCurArr = trArr.eq(i).find("td").eq(columsIndex[k]);//获取当前行的当前列
                var tdPreArr = trArr.eq(mergeIndex).find("td").eq(columsIndex[k]);//获取相同列的第一列

                if (data[i][columsName[k]] === data[i-1][columsName[k]] && data[i][columsName[0]] === data[i-1][columsName[0]]) { //后一行的值与前一行的值做比较，相同就需要合并
                    mark += 1;
                    tdPreArr.each(function () {//相同列的第一列增加rowspan属性
                        $(this).attr("rowspan", mark);
                    });
                    tdCurArr.each(function () {//当前行隐藏
                        $(this).css("display", "none");
                    });

                }else {
                    mergeIndex = i;
                    mark = 1;//一旦前后两行的值不一样了，那么需要合并的格子数mark就需要重新计算
                }
            }
            mergeIndex = 0;
            mark = 1;
        }
    }

});

